#!/bin/bash

# 配置参数（可自定义）
JOURNAL_RETENTION="7d"      # 系统日志保留时间
LOG_DAYS=14                # 旧日志保留天数
GZ_DAYS=30                 # 压缩日志保留天数
TEMP_DAYS=30               # 临时文件保留天数

echo "开始执行磁盘清理操作..."

# 1. 清理系统日志
echo "[1] 清理系统日志 (保留最近 ${JOURNAL_RETENTION})..."
journalctl --vacuum-time=${JOURNAL_RETENTION} >/dev/null 2>&1
echo "系统日志已清理"

# 2. 清理旧日志文件
echo "[2] 清理旧日志文件..."
find /var/log -type f -name "*.log.*" -mtime +${LOG_DAYS} -delete
find /var/log -type f -name "*.gz" -mtime +${GZ_DAYS} -delete
echo "旧日志文件已清理 (删除超过${LOG_DAYS}天的日志和超过${GZ_DAYS}天的压缩文件)"

# 3. 清理临时文件
echo "[3] 清理临时文件..."
find /tmp /var/tmp -type f -atime +${TEMP_DAYS} -delete
echo "临时文件已清理 (删除超过${TEMP_DAYS}天未访问的文件)"

df -h

echo -e "\n 所有清理操作已完成"